﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades;
using LogicaNegocio;

namespace LimsWeb.iAdministradors
{
    public partial class vEquipo : System.Web.UI.Page
    {
        List<ENT_Equipos> oLista_Equipos = new List<ENT_Equipos>();
        List<ENT_Mantenimiento> oLista_Mantenimiento = new List<ENT_Mantenimiento>();
        LN_Mantenimiento oLN_Mantenimiento = new LN_Mantenimiento();
        LN_Equipos oLN_Equipos = new LN_Equipos();

        List<ENT_Parametro> oLista_Parametro = new List<ENT_Parametro>();
        List<ENT_ProductoParametro> oLista_ProdPara = new List<ENT_ProductoParametro>();
        LN_Parametro oLN_Parametro = new LN_Parametro();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                oLista_Equipos = oLN_Equipos.ListarEquiposLab(Session["LaboratorioCod"].ToString());
                lbEquipos.DataSource = oLista_Equipos;
                lbEquipos.DataTextField = "Nombre";
                lbEquipos.DataValueField = "EquipoID";
                lbEquipos.DataBind();

                List<ENT_Parametro> oLista_par = new List<ENT_Parametro>();
                oLista_par = oLN_Parametro.ListarParametro(Int32.Parse(Session["UsuarioID"].ToString()));
                ddlParametros.DataSource = oLista_par;
                ddlParametros.DataTextField = "NomParametro";
                ddlParametros.DataValueField = "ParametroID";
                ddlParametros.DataBind();
            }
        }

        protected void btnRegistrar_Click(object sender, EventArgs e)
        {
            ENT_Equipos oEnt_Equipo = new ENT_Equipos();

            oEnt_Equipo.Nombre = txtNomEquipo.Text.Trim();
            oEnt_Equipo.UsuarioID = Session["UsuarioID"].ToString();
            oEnt_Equipo.LaboratorioID = Session["LaboratorioCod"].ToString();
            oEnt_Equipo.SerialNumber = txtNumSerie.Text.Trim();
            oEnt_Equipo.Marca = txtMarca.Text.Trim();
            oEnt_Equipo.Modelo = txtModelo.Text.Trim();

            oLN_Equipos.InsertarEquipo(oEnt_Equipo);


            oLista_Equipos = oLN_Equipos.ListarEquiposLab(Session["LaboratorioCod"].ToString());
            lbEquipos.DataSource = oLista_Equipos;
            lbEquipos.DataTextField = "Nombre";
            lbEquipos.DataValueField = "EquipoID";
            lbEquipos.DataBind();


            //txtNomEquipo.Text = "";
            txtNumSerie.Text = ""; 
            txtMarca.Text = "";
            txtModelo.Text = "";
            txtNomEquipo.Focus();



        }

        protected void lbEquipos_SelectedIndexChanged(object sender, EventArgs e)
        {
            lbNomEquipo.Text = lbEquipos.SelectedItem.ToString();

            oLista_Parametro = oLN_Parametro.ListarParametroXEquipo(Int32.Parse(lbEquipos.SelectedValue.ToString()));
            lbParametro.DataSource = oLista_Parametro;
            lbParametro.DataTextField = "NomParametro";
            lbParametro.DataValueField = "ParEqpID";
            lbParametro.DataBind();

            ENT_Equipos oEnt = new ENT_Equipos();
            oEnt = oLN_Equipos.ObtenerDetalle(Int32.Parse(lbEquipos.SelectedValue.ToString()));

            try {
                txtNumSerie.Text = oEnt.SerialNumber.ToString();
                txtMarca.Text = oEnt.Marca.ToString();
                txtModelo.Text = oEnt.Modelo.ToString();
                txtProveedor.Text = oEnt.Proveedor.ToString();
                rblEstado.SelectedValue = oEnt.Estado.ToString();
            }
            catch { 
            }
           

        }

        protected void QuitarParamSeleccionado_Click(object sender, EventArgs e)
        {
            bool resul = false;


            try
            {
                resul = oLN_Parametro.QuitarParametroEquipo(Int32.Parse(lbParametro.SelectedValue.ToString()));




                if (resul)
                {
                    oLista_Parametro = oLN_Parametro.ListarParametroXEquipo(Int32.Parse(lbEquipos.SelectedValue.ToString()));
                    lbParametro.DataSource = oLista_Parametro;
                    lbParametro.DataTextField = "NomParametro";
                    lbParametro.DataValueField = "ParEqpID";
                    lbParametro.DataBind();
                    return;
                }
                else
                {
                    Response.Write("<script>alert('No se puede eliminar el parametro porque esta siendo utilizado en otros procesos');</script>");
                }

            }
            catch
            {
                Response.Write("<script>alert('Debes seleccionar un parámetro');</script>");
            }
        }

        protected void QuitarSeleccionado_Click(object sender, EventArgs e)
        {
            int existe = -1;
            bool resul = false;




            try
            {
                resul = oLN_Equipos.QuitarEquipo(Int32.Parse(lbEquipos.SelectedValue.ToString()), ref existe);




                if (resul)
                {
                    oLista_Equipos = oLN_Equipos.ListarEquiposLab(Session["LaboratorioCod"].ToString());
                    lbEquipos.DataSource = oLista_Equipos;
                    lbEquipos.DataTextField = "Nombre";
                    lbEquipos.DataValueField = "EquipoID";
                    lbEquipos.DataBind();
                    return;
                }
                else
                {
                    Response.Write("<script>alert('No se puede eliminar el equipo porque esta siendo utilizado en otros procesos');</script>");
                }

            }
            catch
            {
                Response.Write("<script>alert('Debes seleccionar un equipo');</script>");
            }
        }

        protected void btnIngresarParametro_Click(object sender, EventArgs e)
        {
            try
            {
                oLN_Parametro.InsertarParametroEquipo(Int32.Parse(ddlParametros.SelectedValue.ToString()), Int32.Parse(lbEquipos.SelectedValue.ToString()));




                oLista_Parametro = oLN_Parametro.ListarParametroXEquipo(Int32.Parse(lbEquipos.SelectedValue.ToString()));
                lbParametro.DataSource = oLista_Parametro;
                lbParametro.DataTextField = "NomParametro";
                lbParametro.DataValueField = "ParEqpID";
                lbParametro.DataBind();
            }
            catch
            {
                Response.Write("<script>alert('Debes seleccionar un equipo');</script>");
            }
        }

        protected void btnGuardarCambios_Click(object sender, EventArgs e)
        {
            try
            {
            ENT_Equipos oEnt = new ENT_Equipos();

            oEnt.SerialNumber = txtNumSerie.Text.Trim();
            oEnt.Marca = txtMarca.Text.Trim();
            oEnt.Modelo = txtModelo.Text.Trim();
            oEnt.Proveedor = txtProveedor.Text.Trim();
            oEnt.Estado = Int32.Parse(rblEstado.SelectedValue.ToString());
            oEnt.EquipoID = Int32.Parse(lbEquipos.SelectedValue.ToString());

            bool resul=oLN_Equipos.ActualizarEquipo(oEnt);


            if (resul)
            {
                Response.Write("<script>alert('Datos actualizados correctamente');</script>");
            }
            else
            {
                Response.Write("<script>alert('Ocurrió un error. Por favor intentelo nuevamente');</script>");
            }

             }
            catch {
                Response.Write("<script>alert('Seleccione un equipo');</script>");
            }

        }

    }
}